home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / dev / e / capus2.lha / capus2 / LibTests / TEST_bootblock.library / Checkdf0.e next >
Encoding:
Text File  |  1995-04-05  |  2.2 KB  |  67 lines

  1. /*==================================*/
  2. /* TEST bootblock.library by NasGûl */
  3. /* L = list all known virus.        */
  4. /* F = force install boot           */
  5. /*==================================*/
  6.  
  7. MODULE 'bbbf','libraries/bbbf'
  8.  
  9. PROC main()
  10.     DEF drive,buffer[1024]:STRING,ret,r
  11.     DEF mybb:PTR TO bootblock,brainfile
  12.     DEF pv[256]:STRING,numv,verstr[256]:STRING
  13.     drive:=0
  14.     IF bootblockbase:=OpenLibrary('Bootblock.library',3)
  15.         brainfile:=ReadBBBF('L:BootBlock.brainfile')
  16.         IF (brainfile=BBBF_LOADED) OR (brainfile=BBBF_ALREADY_LOADED)
  17.             WriteF('brainfile \s loaded..\n',IF brainfile=BBBF_ALREADY_LOADED THEN 'already' ELSE '')
  18.             GetBBBFInfo(numv,verstr)
  19.             WriteF('\d virus \s\n',Int(numv),verstr)
  20.             IF StrCmp(arg,'L',1) 
  21.                 p_List(Int(numv))
  22.             ELSE
  23.                 ret:=ReadBoot(drive,buffer)
  24.                 IF ret=0
  25.                     mybb:=CheckBoot(buffer,0)
  26.                     IF mybb=BOOT_VIRUS
  27.                         WriteF('Disk infected by :\s\n',mybb.name)
  28.                         InstallBoot(drive,3)
  29.                     ELSEIF mybb=BOOT_UNKNOWN
  30.                         IF StrCmp(arg,'F',1)
  31.                             WriteF('Intall Boot..\n')
  32.                             InstallBoot(drive,3)
  33.                         ELSE
  34.                             WriteF('BootDisk Unknown..\n')
  35.                         ENDIF
  36.                     ELSEIF mybb=BOOT_NOT_BOOT
  37.                         WriteF('Disk NoBoot..\n')
  38.                     ENDIF
  39.                 ELSE
  40.                     WriteF('Problème..\n')
  41.                 ENDIF
  42.             ENDIF
  43.             FreeBBBF()
  44.         ELSE
  45.             IF brainfile=BBBF_NOT_BBBF THEN WriteF('Bad L:bootblock.brainfile..\n')
  46.             IF brainfile=BBBF_CHECKSUM_ERROR THEN WriteF('Check sum error.\n')
  47.             IF brainfile=BBBF_OUT_OF_MEMORY THEN WriteF('Out of mem.\n')
  48.         ENDIF
  49.         IF bootblockbase THEN CloseLibrary(bootblockbase)
  50.     ELSE
  51.         WriteF('bootblock.library v3.1 ??\n')
  52.     ENDIF
  53. ENDPROC
  54. PROC p_List(v)
  55.     DEF mb:PTR TO bootblock,s=0
  56.     mb:=ListBBBF()
  57.     WHILE mb
  58.         WriteF('«\s»',mb.name)
  59.         mb:=mb.next
  60.         s:=s+1
  61.         IF s=v THEN JUMP f
  62.     ENDWHILE
  63.     f:
  64.     WriteF('\n')
  65. ENDPROC
  66.  
  67.